locust使ってみる
概要
install
pipでも入れられるんだけど、大変な量のエラーが出るので諦めてeasy_install。
sudo easy_install locustio
で
sudo locust -f job.py --host 127.0.0.1:80 --port 8000
で、サンプル的なjob.pyはこんなの。
from locust import HttpLocust, TaskSet, task
class WebsiteTasks(TaskSet):
def on_start(self):
pass
# self.client.get("http:127.0.0.1:80/"
# , {
# "username": "test_user",
# "password": ""
# })
@task
def index(self):
self.client.get("http:127.0.0.1:80/")
# @task
# def about(self):
# print("b")
# self.client.get("/")
# # self.client.get("/about/")
class WebsiteUser(HttpLocust):
task_set = WebsiteTasks
min_wait = 1000
max_wait = 15000
コマンドライン実行後、ブラウザで開く。
WebSocketを使いたい
easy_installでWebSocketのライブラリを足す
sudo easy_install websocket-client
jobファイルはこんな感じで。
from locust import HttpLocust, TaskSet, task
from websocket import create_connection
import gevent
class WebsiteTasks(TaskSet):
def on_start(self):
ws = create_connection('ws://127.0.0.1:80/websocket_target_url')
self.ws = ws
def _receive():
while True:
res = ws.recv()
print("res", res)
gevent.spawn(_receive)
def on_quit(self):
self.ws.close()
@task
def index(self):
self.ws.send_binary("body")
class WebsiteUser(HttpLocust):
task_set = WebsiteTasks
min_wait = 1000/15
max_wait = 1000/15